Fork me on GitHub

algolia搜索too big size报错

algolia配置好了以后,多上传几个博客之后重新建立index就会出错了。出错内容关键部分为objectID=d8676bd7611266ed2404ee6cee119d4a4a911cb0 is too big size=12920 bytes

解决起来其实很简单,但是不知道为什么在网上搜不到相关的解决方法。难道只有我遇到这个问题了??

报错的原始信息为:

1
2
3
4
5
6
D:\metang326.github.io\node_modules\hexo-algolia\lib\command.js:99
throw err;
^
AlgoliaSearchError: Record at the position 0 objectID=d8676bd7611266ed2404ee6cee119d4a4a911cb0 is too big size=12920 bytes. Contact us if you need an extended quota
at success (D:\metang326.github.io\node_modules\hexo-algolia\node_modules\algoliasearch\src\AlgoliaSearchCore.js:375:32)
at process._tickCallback (node.js:369:9)

看意思好像就是内容过多了,我试了一下1KB的博客就不会出错,但是大了就不行。

https://www.algolia.com 官网上的控制台的[Browse]里面能看到可被搜索的内容,有title、path、content之类的东西,主要就是content这部分过多了。

于是我就想着在控制台的[Configuration]这边配置一下,我就在这里改了Searchable attributes,只搜索titile之类的短内容应该没问题了!然后去根目录文件夹D:\metang326.github.io\下面hexo algolia,发现还是报错。

后来接着研究,在根目录下面的_config.yml这里加上了fields,感觉好像是在指定内容了,结果再次hexo algolia,还是报错。

1
2
3
4
5
6
7
8
9
10
11
#添加搜索
algolia:
applicationID: xxx
apiKey: xxx
adminApiKey: xxx
indexName: xxx
chunkSize: 5000
fields:
- title
- categories.name
- path

乱改实在是太辛苦了,所以还是看源码吧。在D:\metang326.github.io\node_modules\hexo-algolia\lib这里发现了一行代码:

1
var storedPost = _.pick(data, ['title', 'date', 'slug', 'path', 'content', 'excerpt', 'objectID']);

于是把’content’删掉,再次hexo algolia,终于成功了。

1
2
3
4
5
6
7
8
9
10
11
12
INFO Generated: lib/algolia-instant-search/instantsearch.min.js
INFO Generated: lib/three/three.min.js
INFO Generated: lib/font-awesome/fonts/fontawesome-webfont.eot
INFO Generated: lib/font-awesome/fonts/FontAwesome.otf
INFO Generated: lib/font-awesome/fonts/fontawesome-webfont.ttf
INFO Generated: lib/font-awesome/fonts/fontawesome-webfont.svg
INFO Generated: uploads/avatar.JPG
INFO 196 files generated in 8.06 s
INFO [Algolia] Index cleared.
INFO [Algolia] Starting indexation...
INFO [Algolia] Highlight tag definition success.
INFO [Algolia] Import done.

没有报错,部署在网页上看了一下,也没有问题了!

-------------本文结束感谢您的阅读-------------